package procimagem;

public class Operador {

	protected ImagemPGM imagemA, imagemB;

	protected ImagemPGM resultado;

	public Operador(ImagemPGM imagemA, ImagemPGM imagemB) {
		int[][] pixelsA = new int[imagemA.largura][imagemA.altura];
		int[][] pixelsR = new int[imagemA.largura][imagemA.altura];

		for (int i = 0; i < pixelsA.length; i++) {
			for (int j = 0; j < pixelsA[i].length; j++) {
				pixelsA[i][j] = imagemA.pixels[i][j];
			}
		}
		this.imagemA = new ImagemPGM(imagemA.largura, imagemA.altura,
				imagemA.maxValue, pixelsA);
		if (imagemB != null) {
			int[][] pixelsB = new int[imagemB.largura][imagemB.altura];
			for (int i = 0; i < pixelsB.length; i++) {
				for (int j = 0; j < pixelsB[i].length; j++) {
					pixelsB[i][j] = imagemB.pixels[i][j];
				}
			}

			this.imagemB = new ImagemPGM(imagemB.largura, imagemB.altura,
					imagemB.maxValue, pixelsB);
		}
		this.resultado = new ImagemPGM(imagemA.largura, imagemA.altura,
				imagemA.maxValue, pixelsR);
	}

	public void opera() {
		for (int i = 0; i < resultado.largura; i++) {
			for (int j = 0; j < resultado.altura; j++) {
				operaNoPixel(i, j);
			}
		}
	}

	protected void operaNoPixel(int x, int y) {

	}

	public ImagemPGM resultado() {
		return resultado;
	}
}
